1. Field
This disclosure relates generally to semiconductors, and more specifically, to power usage in semiconductor processors.
2. Related Art
Lower power consumption continues to have importance in data processing systems, due, for example, to widespread use of portable and handheld applications. Most data processing systems today use a smaller, faster, and more efficient memory, referred to as a cache, located on the integrated circuit to reduce the number of accesses to memory (such as main memory or other internal or external memories). It is well known that accesses to cache generally consume less power and result in reduced latencies as compared to accesses to other internal or external memories. Therefore, it is desirable to store those items which will subsequently be requested again in the faster, more efficient cache in order to reduce power and increase performance. Other power conservation techniques are typically utilized in data processing systems. For example, after selected portions of a data processing system have remained idle for a certain amount of time, the power to the selected portions is either reduced or removed. Data processing systems that have multiple cores also implement power conservation by powering down selected cores after periods of inactivity.
Many modern processing systems schedule and execute multiple threads. A “thread” is a series of self-contained instructions that perform an operation, wherein the instructions may be executed concurrently and independently with other threads. Others have scheduled the execution of multiple threads based on a priority basis. Thread schedulers may use timers to determine when a currently executing thread should be preempted by a higher priority thread. Some thread executions also get delayed as a result of needing to wait upon completion of another operation. While waiting, the thread may not have sufficient priority to continue to be executed and therefore be placed on hold in a waiting queue. However, quick transitioning between an active operation and an on-hold operation of a thread can cause greater dissipation of power than if the processing device had completed operation of the thread without having any waiting period. Others have caused a thread to remain inactive for at least a predetermined amount of time as a result. However, in multiple core systems with various types of processing devices, the fixed inactive time causes system inefficiency.